export default{
	bind(el,binding){
		var judgeDeviceType = function () {
			var ua = window.navigator.userAgent.toLocaleLowerCase();
			var isIOS = /iphone|ipad|ipod/.test(ua);
			var isAndroid = /android/.test(ua);
			let isQQ = window.navigator.userAgent.match(/\sQQ/i) == " QQ";
			return {
				isIOS: isIOS,
				isAndroid: isAndroid,
				isQQ
			}
		}()
		function activeElementScrollIntoView(activeElement, delay) {
			var editable = activeElement.getAttribute('contenteditable')

			// 输入框、textarea或富文本获取焦点后没有将该元素滚动到可视区
			if (activeElement.tagName == 'INPUT' || activeElement.tagName == 'TEXTAREA' || editable === '' || editable) {
				setTimeout(function () {
					activeElement.scrollIntoView();
				}, delay)
			}
		}
		function listenKeybord($input) {
			if (judgeDeviceType.isIOS) {
				// IOS 键盘弹起：IOS 和 Android 输入框获取焦点键盘弹起
				$input.addEventListener('focus', function () {
					// IOS 键盘弹起后操作
					// activeElementScrollIntoView($input, 1000);
				}, false)

				// IOS 键盘收起：IOS 点击输入框以外区域或点击收起按钮，输入框都会失去焦点，键盘会收起，
				$input.addEventListener('blur', () => {
					// IOS 键盘收起后操作
					var wechatInfo = window.navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i);
					if (!wechatInfo && !judgeDeviceType.isQQ) return;
					if(wechatInfo){
						var wechatVersion = wechatInfo[1];
						var version = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
					}
					if ((wechatInfo && +wechatVersion.replace(/\./g, '') >= 674 && +version[1] >= 12) || judgeDeviceType.isQQ) {
						window.scrollTo(0,0);
					}
				})
			}

			// Andriod 键盘收起：Andriod 键盘弹起或收起页面高度会发生变化，以此为依据获知键盘收起
			if (judgeDeviceType.isAndroid) {
				var originHeight = document.documentElement.clientHeight || document.body.clientHeight;

				window.addEventListener('resize', function () {
					var resizeHeight = document.documentElement.clientHeight || document.body.clientHeight;
					if (originHeight < resizeHeight) {
						// Android 键盘收起后操作
					} else {
						// Android 键盘弹起后操作
						// activeElementScrollIntoView($input,2000);
					}

					originHeight = resizeHeight;
				}, false)
			}
		}
		listenKeybord(el)
	}
}